//负责操作localstorage的帮助文件
//获取数据 var str = localStorage.getItem(key);
//添加或追加数据 localStorage.setItem(key,value);  value 是一个字符串
//移除数据 ： localStorage.removeItem(key);

//1.0 定义常量key,用来操作localStorage的
export const KEY = 'goodsdata';
export var valueObj = {goodsid:0,count:0};

//2.0 获取数据

export function getItem(){
   var jsonString =  localStorage.getItem(KEY);
   jsonString = jsonString || '[]';
   return JSON.parse(jsonString);
}

//3.0 实现数据的增加

export function setItem(value){
    var jsonString = localStorage.getItem(KEY);
    jsonString = jsonString || '[]';
    var arr = JSON.parse(jsonString);
    arr.push(value);
    localStorage.setItem(KEY,JSON.stringify(arr));
}

//4.0 实现数据的移除

export function removeItem(goodsid){
   var arr = getItem();
    //查找出arr中的goodsid和传入的参数goodsid一致的数据全部移除
    for(var i = arr.length-1;i>=0;i--){
        if(arr[i].goodsid == goodsid){
            arr.splice(i,1);
        }
    }
    //将新的数据保存回localStorage
    localStorage.setItem(KEY,JSON.stringify(arr));
}

//5.0将localstorage中的数据整合成对象的形式
export function getgoodsObj(){
    var arr = getItem();
    var resObj = {};
    for(var i =0;i<arr.length;i++){
        var item = arr[i];
        if(!resObj[item.goodsid]){
            resObj[item.goodsid] = item.count
        }else{
            var count = resObj[item.goodsid];
            resObj[item.goodsid] = count + item.count;
        }
    }
    return resObj;
}

//obj的格式 {goodsid:87,type:'add'}
export function updateData(obj){
    var arr = getItem();

    var count = 1;
    if(obj.type == 'add'){
        //加
        arr.push({goodsid:obj.goodsid,count:count})
    }else{
        //减
         for(var i = 0 ;i<arr.length;i++){
             //如果这个对象中的count值等于1，则删除这个对象,否则将这个对象的count值减一后保存回去.
             if(arr[i].goodsid == obj.goodsid){
                 if(arr[i].count>1){
                     arr[i].count = arr[i].count-1;
                     break;
                 }else{
                     arr.splice(i,1);
                     break;
                 }
             }
         }
    }

    //将新的数据保存回localStorage
    localStorage.setItem(KEY,JSON.stringify(arr));
}

